package com.yungu.swift.lbs.trace.baidu.track;

import com.yungu.swift.lbs.trace.baidu.model.BaseRequest;

/**
 * @description 删除entity请求
 * @date 2017/12/2 10:22
 * @version 1.0
 */
public class ListEntityRequest extends BaseRequest {

    /**
     * 支持根据多个条件筛选，多个条件用竖线分隔（active_time 和 inactive_time 不可同时输入）
     * 规则：filter=key1:value1|key2:value2。
     * 示例："filter=entity_names:张三,李四|active_time:1471708800|team:北京"
     * <p>
     * 目前，支持的筛选字段为：
     * 1）entity_names: entity_name列表，多个entity用逗号分隔，精确筛选。示例："entity_names:张三,李四"
     * <p>
     * 2）active_time：unix时间戳，查询在此时间之后有定位信息上传的entity（loc_time>=active_time）。如查询2016-8-21 00:00:00之后仍活跃的entity，示例："active_time:1471708800"
     * <p>
     * 3）inactive_time：unix时间戳，查询在此时间之后无定位信息上传的entity（loc_time<inactive_time）。如查询2016-8-21 00:00:00之后不活跃的entity示例："inactive_time:1471708800"
     * <p>
     * 4）开发者自定义的可筛选的entity属性字段，示例："team:北京"
     */
    private String filter;

    /**
     * 对应参数coord_type_output
     * 默认值：bd09ll
     * 该字段用于控制返回结果中坐标的类型。可选值为：
     * bd09ll：百度经纬度坐标
     * gcj02：国测局加密坐标
     * <p>
     * 注：该字段在国外无效，国外均返回 wgs84坐标
     */
    private String coordTypeOutput;

    /**
     * 对应参数pageIndex
     * 默认值为1。page_index与page_size一起计算从第几条结果返回，代表返回第几页。
     */
    private int pageIndex;

    /**
     * 对应参数pageSize
     * 默认值为100。page_size与page_index一起计算从第几条结果返回，代表返回结果中每页有几条记录。
     */
    private int pageSize;

    public String getFilter() {
        return filter;
    }

    public void setFilter(String filter) {
        this.filter = filter;
    }

    public String getCoordTypeOutput() {
        return coordTypeOutput;
    }

    public void setCoordTypeOutput(String coordTypeOutput) {
        this.coordTypeOutput = coordTypeOutput;
    }

    public int getPageIndex() {
        return pageIndex;
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex = pageIndex;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public ListEntityRequest(long requestID, String ak, long serviceId) {
        super(requestID, ak, serviceId);
    }

    public ListEntityRequest(long requestID, String ak, long serviceId, String filter, String coordTypeOutput, int pageIndex, int pageSize) {
        super(requestID, ak, serviceId);
        this.filter = filter;
        this.coordTypeOutput = coordTypeOutput;
        this.pageIndex = pageIndex;
        this.pageSize = pageSize;
    }

    @Override
    public String toString() {
        return "ListEntityRequest{" +
                "filter='" + filter + '\'' +
                ", coordTypeOutput='" + coordTypeOutput + '\'' +
                ", pageIndex='" + pageIndex + '\'' +
                ", pageSize='" + pageSize + '\'' +
                "} " + super.toString();
    }
}
